/* ================读取缺勤记录 start======================== */
var ds_absence = new Ext.data.Store({
			proxy : new Ext.data.HttpProxy({
						url : 'absence_viewAbsenceOnCondition_list.action' // 'absence_allAbsenceRecord.action'
					}),
			reader : new Ext.data.JsonReader({
						root : 'absences',
						totalProperty : 'totalCount'
					}, [{
								name : 'absencerId',
								mapping : 'userId',
								type : 'long'
							}, {
								name : 'userName',
								mapping : 'user.userName',
								type : 'string'
							}, {
								name : 'dateHalf',
								mapping : 'dateHalf',
								type : 'string'
							}, {
								name : 'type',
								mapping : 'type',
								type : 'short'
							}, {
								name : 'status',
								mapping : 'status',
								type : 'short'
							}, {
								name : 'confirmedStatus',
								mapping : 'confirmedStatus',
								type : 'short'
							}, {
								name : 'confirmerName',
								mapping : 'confirmerName',
								type : 'string'
							}, {
								name : 'confirmedTimestamp',
								mapping : 'confirmedTimestamp',
								type : 'long'
							}, {
								name : 'remark',
								mapping : 'remark',
								type : 'string'
							}, {
								name : 'createdTimestamp',
								mapping : 'createdTimestamp'
							}, {
								name : 'lastModifierName',
								mapping : 'lastModifierName',
								type : 'string'
							}, {
								name : 'lastModified',
								mapping : 'lastModified'
							}, {
								name : 'operation',
								type : 'string'
							}])
		});

// 时间格式转换
function formatTime(value, metadata, record){
	if(null==value){
		return null;
	}else{
		return new Date(value).format('Y-m-d');
	}
}
var createdTimestamp;
var lastModified;
var confirmedTimestamp;
function longToDate(respText){
    lastModified = formatTime(respText.anAbsence.lastModified, "", "");
    createdTimestamp = formatTime(respText.anAbsence.createdTimestamp, "", "");
    confirmedTimestamp= formatTime(respText.anAbsence.confirmedTimestamp, "", "");
}
var cm_absence = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),

/*
 * { header : '用户ID', width : 120, dataIndex : 'absencerId', hidden : true,
 * sortable : true },
 */{
			header : '用户名',
			width : 100,
			dataIndex : 'userName',
			sortable : true
		}, {
			header : '缺勤时间',
			width : 100,
			dataIndex : 'dateHalf',
			renderer : function(value, metadata, record) {
				return "<a href = 'javascript:void(0)' id = 'viewAbsence' name='view'"
						+ " onclick=javascript:viewAbsenceWindow('"
						+ record.data.absencerId
						+ "','"
						+ record.data.userName
						+ "','"
						+ record.data.dateHalf + "')>" + value + " </a>";
			},
			sortable : true
		}, {
			header : '缺勤类型',
			width : 80,
			dataIndex : 'type',
			sortable : true,
			renderer : function(value, metadata, record) {
				if (value == 1) {
					return '出差';
				} else {
					return '请假';
				};
			}
		}, {
			header : '出勤状态',
			width : 80,
			dataIndex : 'status',
			sortable : true,
			renderer : function(value, metadata, record) {
				if (value == 1) {
					return '缺勤';
				} else {
					return '出勤';
				};
			}
		}, {
			header : '确认状态',
			width : 80,
			dataIndex : 'confirmedStatus',
			sortable : true,
			renderer : function(value, metadata, record) {
				if (value == 0) {
					return '未确认';
				} else if (value == 1) {
					return '确认缺勤';
				} else {
					return '确认出勤';
				};
			}
		}, {
			header : '确认人',
			width : 100,
			hidden : true,
			dataIndex : 'confirmerName',
			renderer:function(value,record)
			{
				if(value==''){
					return '<font color="#CCCCCC">无</font>';
				}else{
					return value;
				}
			},
			sortable : true
		},  {
		    header : '确认时间', width : 100, dataIndex : 'confirmedTimestamp', hidden : true,
		    renderer: function(value,  record)
				{if(value==''){
					return '<font color="#CCCCCC">未确认</font>';
				}else{			
					return formatTime(value, null, record);
				}
			  },
		 sortable : true
		}, {
			header : '最后修改人',
			width : 100,
			dataIndex : 'lastModifierName',
			sortable : true
		}, {
			header : '最后修改时间',
			width : 100,
			dataIndex : 'lastModified',
			renderer: function(value, metadata, record){
		    return formatTime(value, metadata, record);
		    },
			sortable : true
		},  {
			header : "操作",
			width : 80,
			dataIndex : 'operation',
			renderer : function(value, metadata, record) {
			 if(record.data.confirmedStatus == 0){
				 return "<a href = 'javascript:void(0)' id = 'modifyAbsence' name='modify' "
					+ "onclick=javascript:modifyAbsenceWindow('"
					+ record.data.absencerId
					+ "','"
					+ record.data.userName
					+ "','"
					+ record.data.dateHalf + "')>修改 </a>";
		    }else{
		    	return " <font color='#CCCCCC'>修改</font>";
		    }
			}
		}]);
var btn_add_absence = new Ext.Button({
			text : '添加缺勤记录',
			region : 'left',
			iconCls:'absence_add',
			style : '宋体',
			handler : function() {
				form_absence_add.getForm().reset();
				window_add_absence.show();
			}
		});
var btn_search_absence = new Ext.Button({
			text : '查询缺勤记录',
			region : 'left',
			iconCls:'absence_search',
			style : '宋体',
			handler : function() {
				form_absence_exactSearch.getForm().reset();
				window_absence_exactSearch.show();
			}
		});
var btn_searchSomeone_absence = new Ext.Button({
	text : '按用户查询',
	region : 'left',
	iconCls:'absence_search',
	style : '宋体',
	handler : function() {
		form_absence_searchSomeone.getForm().reset();
		window_absence_searchSomeone.show();
	}
});
var btn_allAbsence_absence = new Ext.Button({
	text : '列出所有缺勤',
	region : 'left',
	iconCls:'refresh',
	style : '宋体',
	handler : function() {
		ds_absence.baseParams = null;
	    ds_absence.load({
		   params:{
		      start:0,
		      limit:20,
		      absenceType:'',
		      absentStatues:'',
		      confirmStatue:'',
		      isConfirmed:'',
		      startDate:''
	   }
	   });
	}
});
var grid_absence = new Ext.grid.GridPanel({
			title : '缺勤管理',
			loadMask : {
				errorMessage : '数据加载中...'
			},
			cm : cm_absence,
			ds : ds_absence,
			store : ds_absence,
			region : 'center',
			tbar : [btn_add_absence, btn_search_absence,btn_searchSomeone_absence,btn_allAbsence_absence],
			bbar : new Ext.PagingToolbar({
						pageSize : 20,
						store : ds_absence,
						displayInfo : true,
						beforePageText : '第',
						afterPageText : '页-共{0}页',
						displayMsg : '显示{0} - {1} 条  共 {2} 条',
						emptyMsg : "没有记录"
					})
		});
/* ================读取缺勤记录 end======================== */
/* ================查看缺勤信息详情 begin ======================== */
/** **********************查看缺勤信息详情窗口********************************* */

/************************************查看备注详情  begin ***********************************/
function showRemarkDetail(respText){
	return "<div align=\"center\"><a href='javascript:void(0)'  onclick=javascript:showRemarkOfView('" + respText.anAbsence.userId
	 								+ "','"
									+respText.anAbsence.dateHalf+"')>备注详情</a></div>";
}
window.showRemarkOfView = function(userId,dateHalf){
    Ext.Ajax.request({
        url: 'absence_viewTheAbsence_view.action',
        method: 'post',
        params: {
            absencerId : userId,
			dateHalf : dateHalf
        },
        success: function(resp, opts){
            var respText = Ext.util.JSON.decode(resp.responseText);
            if (respText.success) {
                var window_remark = new Ext.Window({
                    title: '备注详情',
                    closable: false,
                    width: 600,
                    resizable: false,
                    height: 400,
                    iconCls:"absence",
                    modal: true,
                    constrain: true,
                    closeAction: 'close',
                    layout: 'fit',
                    items: [{
                        xtype: 'htmleditor',
                        enableAlignments: false,
                        enableColors: false,
                        enableFont: false,
                        enableFontSize: false,
                        enableFormat: false,
                        enableLinks: false,
                        enableLists: false,
                        enableSourceEdit: false,
                        readOnly: true,
                        value: respText.anAbsence.remark
                    }],
                    buttons: [{
                        text: '关闭',
                        handler: function(){
                            window_remark.close();
                        }
                    }]
                
                
                }).show();
            }
        },
        failure: function(){
            Ext.Msg.show({
                title: '错误提示',
                msg: '查看失败!',
                buttons: Ext.Msg.OK,
                icon: Ext.Msg.ERROR,
                width: 200
            });
        }
    })
}
/************************************查看备注详情  end ***********************************/
viewAbsenceWindow=function(id,name, half) {
	Ext.Ajax.request({
		url : 'absence_viewTheAbsence_view.action',
		method : 'post',
		params : {
			absencerId : id,
			dateHalf : half,
			userName:name
		},
		success : function(resp, opts) {
			var respText = Ext.util.JSON.decode(resp.responseText);
			var type='';
			var status='';
			var confirmStatue='';
			if (respText.anAbsence.type == 1) {
				type= '出差';
			} else {
			    type= '请假';
		 	};
		 	if (respText.anAbsence.status == 1) {
			    status= '缺勤';
			} else {
				status= '出勤';
		    };
		    if(respText.anAbsence.confirmedStatus==0){
		    	confirmStatue='未确认';
		    }else if(respText.anAbsence.confirmedStatus==1){
		    	confirmStatue='确认缺勤';
		    }else {
		    	confirmStatue='确认出勤';
		    }
			if (respText.success) {
				longToDate(respText);
				var window_absence_view = new Ext.Window({
					title : '查看缺勤信息详情',
					width : 600,
					resizable : false,
					autoHeight : true,
					closable:false,
					constrain: true,
					iconCls:"absence",
					modal : true,
					closeAction : 'hide',
					items : [
					/** **********************查看缺勤信息详情表单********************************* */
					new Ext.FormPanel({
						border : false,
						baseCls : 'x-plain',
						bodyStyle : 'padding:5px 5px 0',
						autoWidth:true,
						labelAlign : 'right',
						labelWidth : 100,
						defaults : {
							itemCls : 'form_text unedit'
						},
						defaultType : 'textfield',
						mode : 'remote',
						triggerAction : 'all',
						items : [ {
									fieldLabel : '用户名  ',
									name : 'userName',
									readOnly : true,
									value :name,
									maxLength : 30
								}, {
									fieldLabel : '缺勤时间  ',
									name : 'dateHalf',
									readOnly : true,
									value : respText.anAbsence.dateHalf,
									maxLength : 30
								}, {
									name : 'type',
									store : storeAbsentType,
									fieldLabel : '缺勤类型 ',
									readOnly : true,
									value : type
								}, {
									name : 'status',
									readOnly : true,
									fieldLabel : '出勤状态  ',
									readOnly : true,
									value : status
								}, {
									name : 'confirmStatue',
									fieldLabel : '确认状态  ',
									readOnly : true,
									value : confirmStatue
								}, {
									fieldLabel : '创建时间  ',
									name : 'createdTimestamp',
									readOnly : true,
									// value :
									// respText.anAbsence.createdTimestamp,
									value:formatTime(respText.anAbsence.createdTimestamp, "", ""),
									maxLength : 30
								}, {
									fieldLabel : '最后修改人',
									name : 'lastModifierName',
									readOnly : true,
									value : respText.anAbsence.lastModifierName,
									maxLength : 30
								}, {
									fieldLabel : '最后修改时间',
									name : 'lastModified',
									readOnly : true,
							    	// value:formatTime(respText.anAbsence.lastModified,
									// "", "")
									value :lastModified
								}, {
									fieldLabel : '确认人',
									name : 'confirmerName',
									readOnly : true,
									value : respText.anAbsence.confirmerName,
									maxLength : 30
								}, {
									fieldLabel : '确认时间',
									name : 'confirmedTimestamp',
									readOnly:true,
									value : confirmedTimestamp,
									maxLength : 30
								},{
									xtype : 'panel',
									fieldLabel : '备注  ',// 实现时注意原记录不可以修改，只可以增加新的备注信息
									width: 425,
		                            itemCls: 'clear',
		                            html: showRemarkDetail(respText)
								}, {
									xtype : 'textfield',
									name : 'anAbsence.userId',
									value : respText.anAbsence.userId,
									hidden : true,
									maxLength : 30
								}],
						buttons : [{
									text : '关闭',
									type : 'button',
									handler : function() {
										window_absence_view.hide();
									}
								}]
					})
					/** **********************查看缺勤信息详情表单end********************************* */
					]
				});
				window_absence_view.show();
			} else {
				Ext.Msg.show({
					title : '错误提示',
					msg : '请求查看失败!',
					buttons : Ext.Msg.OK,
					icon : Ext.Msg.ERROR,
					width : 200
				});
			}
		},
		failure : function() {
			Ext.Msg.show({
						title : '错误提示',
						msg : '请求查看失败!',
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.ERROR,
						width : 200
					});
		}
	});
};

/* ================查看缺勤记录详情 end ======================== */
/* ================添加缺勤记录 start ======================== */
var absentType = [[1, '出差'], [2, '请假']];
var status = [[1, '缺勤'], [2, '出勤']];
var confirmStatus = [[0, '未确认'], [1, '缺勤'], [2, '出勤']];
var storeAbsentType = new Ext.data.SimpleStore({
			fields : ['value', 'text'],
			data : absentType
		});
var storeStatus = new Ext.data.SimpleStore({
			fields : ['value', 'text'],
			data : status
		});
var storeConfirmStatus = new Ext.data.SimpleStore({
			fields : ['value', 'text'],
			data : confirmStatus
		});
var form_absence_add = new Ext.form.FormPanel({
	labelWidth :80,
	labelAlign : 'right',
	url : 'absence_addAbsence_add.action',
	border : false,
	baseCls : 'x-plain',
	bodyStyle : 'padding:5px 5px 0',
	autoWidth:true,
	defaults : {
		itemCls : 'form_text'
	},
	defaultType : 'textfield',
	items : [{
				fieldLabel : '用户名',
				name : 'absentName',
				emptyText : '缺勤人不能为空',
				allowBlank : false,
				maxLength : 30
			}, {
				xtype : 'combo',
				store : storeAbsentType,
				fieldLabel : '缺勤类型',
				name : 'absenceType',
				editable : false,
				emptyText : '缺勤类型不能为空',
				allowBlank : false,
				mode : 'local',
				triggerAction : 'all',
				valueField : 'value',
				displayField : 'text'
			}, {
				xtype : 'datefield',
				name : 'startDate',
				emptyText : '日期类型为  年-月-日',
				fieldLabel : '开始日期',
				autoHeight:true,
				format : 'Y-m-d',// H:i:s
//              disabledDays : [0, 6],
				minText:'不能早于2008年1月1日',
				maxText:'不能晚于2020年12月31日',
				minValue:'2008-01-01',
				maxValue : '2020-12-31',
				allowBlank : false
			}, {
				xtype : 'datefield',
				name : 'endDate',
				emptyText : '日期类型为  年-月-日',
				fieldLabel : '结束日期',
				format : 'Y-m-d',
				minText:'不能早于2008年1月1日',
				maxText:'不能晚于2020年12月31日',
				minValue:'2008-01-01',
				maxValue : '2020-12-31',
//              disabledDays : [0, 6],
				allowBlank : false
			}, {
				xtype : 'timefield',
				name : 'startHour',
				emptyText : '请选择',
				fieldLabel : '开始时间',
				minText:'不能早于早上8点',
				maxText:'不能晚于下午6点',
				minValue : '08:00 AM',
				maxValue : '18:00 PM',
				increment : 30
			},  {
				xtype : 'timefield',
				name : 'endHour',
				emptyText : '请选择',
				fieldLabel : '结束时间',
				minText:'不能早于早上8点',
				maxText:'不能晚于下午6点',
				minValue : '08:00 AM',
				maxValue : '18:00 PM',
				increment : 30
			}, {
			    xtype : 'textarea',
				fieldLabel : '备注  ',// 实现时注意原记录不可以修改，只可以增加新的备注信息
				name : 'remark',
				height : 80,
				width:442,
				itemCls:'form_long',
				maxLength : 200
			}],
	buttonAlign : 'right',
	minButtonWidth : 60,
	buttons : [{
				text : '添加',
				handler : function() {
					if (!form_absence_add.getForm().isValid())
						return;
					form_absence_add.getForm().submit({
								success : function(form, action) {
									if (action.result.success) {
										Ext.Msg.show({
										title : '成功',
										msg : '成功添加缺勤记录',
										buttons : Ext.Msg.OK,
										icon : Ext.Msg.INFO,
										width : 200
									    });
										ds_absence.load({
											params : {
												start : 0,
												limit : 20
											}
										});
									}
								},
								// 提交失败的回调函数
								failure : function(form, action) {
									if (action.result.success==false){
										Ext.Msg.show({
											title : '操作提示',
											msg : action.result.errorMessage,
											buttons : Ext.Msg.OK,
											icon : Ext.Msg.ERROR,
											width : 200,
											fn:function(){
												window_add_absence.show();
											}
										});
									}else {
									if (action.failureType == 'server') {
										Ext.MessageBox.alert('错误', '操作失败 ');
									} else if (action.failureType == 'connect') {
										Ext.Msg.alert('连接错误', '指定路径连接错误!');
									} else if (action.failureType == 'client') {
										Ext.Msg.alert('提示', '数据错误，非法提交');
									} else {
										Ext.MessageBox.alert('警告', '服务器数据传输错误');
									}
									}
								}
							}), window_add_absence.hide();
				}
			}, {
				text : '重置',
				handler : function() {
					form_absence_add.getForm().reset();
				}
			}, {
				text : '取消',
				type : 'button',
				handler : function() {
					window_add_absence.hide();
				}

			}]
});
var window_add_absence = new Ext.Window({
			title : '添加缺勤记录',
			width : 600,
			resizable : false,
			autoHeight : true,
			constrain: true,
			modal : true,
			iconCls:'absence_add',
			closable:false,
			closeAction : 'hide',
			items : [form_absence_add]

		});

/* ================添加缺勤记录 end ======================== */
/* ================精确查询缺勤记录 begin ======================== */

var form_absence_exactSearch = new Ext.form.FormPanel({
			labelWidth :80,
			labelAlign : 'right',
			url : 'absence_viewAbsenceOnCondition_list.action',
			border : false,
			baseCls : 'x-plain',
			bodyStyle : 'padding:5px 5px 0',
			autoWidth:true,
			defaults : {
			itemCls : 'form_text',
				msgTarget : 'qtip'// 默认是qtip
			},
			defaultType : 'textfield',
			items : [
						 /*
							 * { fieldLabel : '用户名', name : 'absentName', anchor :
							 * '80%', allowBlank : false, maxLength : 30 },
							 */
						 {
						xtype : 'combo',
						editable : false,
						store : new Ext.data.SimpleStore({
									data : [['1', '出差'], ['2', '请假']],
									fields : ['value', 'text']
								}),
						fieldLabel : '缺勤类型',
						name : 'absenceType',
						emptyText : '请选择',
						type : 'short',
						mode : 'local',
						triggerAction : 'all',
						valueField : 'value',
						displayField : 'text'
					}, {
						xtype : 'combo',
						editable : false,
						name : 'absentStatues',
						store : new Ext.data.SimpleStore({
									data : [['1', '缺勤'], ['2', '出勤']],
									fields : ['value', 'text']
								}),
						fieldLabel : '出勤状态  ',
						emptyText : '请选择',
						mode : 'local',
						triggerAction : 'all',
						valueField : 'value',
						displayField : 'text',
						maxLength : 30
					}, {
						xtype : 'combo',
						editable : false,
						name : 'confirmStatue',
						store : new Ext.data.SimpleStore({
									data : [['0', '未确认'], ['1', '缺勤'],
											['2', '出勤']],
									fields : ['value', 'text']
								}),
						fieldLabel : '确认状态  ',
						emptyText : '请选择',
						mode : 'local',
						triggerAction : 'all',
						displayField : 'text',
						valueField : 'value',
						maxLength : 30
					}, {
						xtype : 'datefield',
					// editable : false,
						name : 'startDate',
						// emptyText : '日期类型为 年-月-日',
						fieldLabel : '开始日期',
						format : 'Y-m-d',// H:i:s
// disabledDays : [0, 6],
						minValue:'2008-01-01',
						maxValue : '2020-12-31',
						increment : 30,
						maxLength : 70
					}, {
						xtype : 'datefield',
					// editable : false,
						name : 'endDate',
						// emptyText : '日期类型为 年-月-日',
						fieldLabel : '结束日期',
						format : 'Y-m-d',
						minValue:'2008-01-01',
						maxValue : '2020-12-31'
// disabledDays : [0, 6]
					}, {
						xtype : 'timefield',
					// editable : false,
						name : 'startHour',
						// emptyText : '请选择',
						fieldLabel : '开始时间',
						minValue : '08:00 AM',
						maxValue : '18:00 PM',
						increment : 30
					},  {
						xtype : 'timefield',
					// editable : false,
						name : 'endHour',
						// emptyText : '请选择',
						fieldLabel : '结束时间',
						minValue : '08:00 AM',
						maxValue : '18:00 PM',
						increment : 30
					}],
			buttonAlign : 'right',
			minButtonWidth : 60,
			buttons : [{
				text : '查询',
				type : 'submit',
				handler : function() {
				if (!form_absence_exactSearch.getForm().isValid())
					return;
					form_absence_exactSearch.getForm().submit({
						method : 'post',
						params : '',
						success : function(form, action) {
							if (action.result.success) {
								Ext.Msg.show({
									title : '查询成功',
									msg : action.result.errorMessage,
									buttons : Ext.Msg.OK,
									icon : Ext.Msg.INFO,
									width : 200
								});
								ds_absence.baseParams =
									  form_absence_exactSearch.getForm().getValues();
							    ds_absence.load({ params : { start : 0, limit : 20 }	 });
							} else {
								Ext.Msg.show({
											title : '错误提示',
											msg : action.result.errorMessage,
											buttons : Ext.Msg.OK,
											icon : Ext.Msg.ERROR,
											width : 200
										});
							}
						},
						failure : function(form, action) {
							if (action.result.success==false){
								Ext.Msg.show({
									title : '操作提示',
									msg : action.result.errorMessage,
									buttons : Ext.Msg.OK,
									icon : Ext.Msg.ERROR,
									width : 200,
									fn:function(){
										window_absence_exactSearch.show();
									}
								});
							}else if (action.failureType == 'server') {
								Ext.MessageBox.alert('错误', '操作失败 ');
							} else if (action.failureType == 'connect') {
								Ext.Msg.alert('连接错误', '指定路径连接错误!');
							} else if (action.failureType == 'client') {
								Ext.Msg.alert('提示', '数据错误，非法提交');
							} else {
								Ext.MessageBox.alert('警告', '服务器数据传输错误');
							}
						}
							 
						});
					window_absence_exactSearch.hide();
				}
				}, {
				text : '重置',
				handler : function() {
					form_absence_exactSearch.getForm().reset();
				}
			}, {
				text : '取消',
				type : 'button',
				handler : function() {
					window_absence_exactSearch.hide();
				}

			}]
		});
var window_absence_exactSearch = new Ext.Window({
			title : '查询缺勤记录',
			width : 600,
			resizable : false,
			autoHeight : true,
			constrain: true,
			closable:false,
			modal : true,
			iconCls:'absence_search',
			closeAction : 'hide',
			items : form_absence_exactSearch

		});

/* ================精确查询缺勤记录 end ======================== */
/* ==================查询某人的缺勤记录 begin ======================== */
var form_absence_searchSomeone = new Ext.form.FormPanel({
	labelWidth : 80,
	labelAlign : 'right',
	url : 'absence_viewAbsenceOnCondition_list.action',
	border : false,
	baseCls : 'x-plain',
	bodyStyle : 'padding:5px 5px 0',
	autoWidth:true,
	defaults : {
		itemCls : 'form_text',
		msgTarget : 'qtip'
	},
	defaultType : 'textfield',
	items : [
				{
				fieldLabel : '用户名',
				name : 'absentName',
				emptyText : '缺勤人不能为空',
				allowBlank : false
			},  {
				xtype : 'combo',
				editable : false,
				store : new Ext.data.SimpleStore({
							data : [['1', '出差'], ['2', '请假']],
							fields : ['value', 'text']
						}),
				fieldLabel : '缺勤类型',
				name : 'absenceType',
				emptyText : '请选择',
				mode : 'local',
				triggerAction : 'all',
				valueField : 'value',
				displayField : 'text'
			}, {xtype : 'combo',
			    editable : false,
				fieldLabel : '确认类型',
				name : 'isConfirmed',
				emptyText : '请选择',
				store : new Ext.data.SimpleStore({
					data : [['1', '已确认'], ['2', '未确认']],
					fields : ['value', 'text']
				}),
				mode : 'local',
				triggerAction : 'all',
				valueField : 'value',
				displayField : 'text'
			}, {
				xtype : 'datefield',
				name : 'startDate',
				// emptyText : '日期类型为 年-月-日',
				fieldLabel : '开始日期',
				format : 'Y-m-d',// H:i:s
// disabledDays : [0, 6],
				minValue:'2008-01-01',
				maxValue : '2020-12-31',
				increment : 30,
				maxLength : 70
			},  {
				xtype : 'datefield',
				name : 'endDate',
				// emptyText : '日期类型为 年-月-日',
				fieldLabel : '结束日期',
				format : 'Y-m-d',
				minValue:'2008-01-01',
				maxValue : '2020-12-31'
// disabledDays : [0, 6]
			}, {
				xtype : 'timefield',
				name : 'startHour',
				// emptyText : '请选择',
				fieldLabel : '开始时间',
				minValue : '08:00 AM',
				maxValue : '18:00 PM',
				increment : 30
			}, {
				xtype : 'timefield',
				name : 'endHour',
				// emptyText : '请选择',
				fieldLabel : '结束时间',
				minValue : '08:00 AM',
				maxValue : '18:00 PM',
				increment : 30
			}, {
				xtype : 'combo',
				editable : false,
				name : 'absentStatues',
				store : new Ext.data.SimpleStore({
							data : [['1', '缺勤'], ['2', '出勤']],
							fields : ['value', 'text']
						}),
				// fieldLabel : '出勤状态 ',
				// emptyText : '请选择',
				mode : 'local',
				triggerAction : 'all',
				valueField : 'value',
				displayField : 'text',
				maxLength : 30,
				hidden : true
			}, {
				xtype : 'combo',
				editable : false,
				name : 'confirmStatue',
				store : new Ext.data.SimpleStore({
							data : [['0', '未确认'], ['1', '缺勤'],
									['2', '出勤']],
							fields : ['value', 'text']
						}),
				// fieldLabel : '确认状态 ',
				emptyText : '请选择',
				mode : 'local',
				triggerAction : 'all',
				displayField : 'text',
				valueField : 'value',
				maxLength : 30,
				hidden : true
			}],
	buttonAlign : 'right',
	minButtonWidth : 60,
	buttons : [{
		text : '查询',
		type : 'submit',
		handler : function() {
		if (!form_absence_searchSomeone.getForm().isValid())
			return;
			form_absence_searchSomeone.getForm().submit({
				method : 'post',
				params : { start :0, limit : 20 },
				success : function(form, action) {
					if (action.result.success) {
						Ext.Msg.show({
									title : '查询成功',
									msg : action.result.errorMessage,
									buttons : Ext.Msg.OK,
									icon : Ext.Msg.INFO,
									width : 200
								});
						ds_absence.baseParams =
							  form_absence_searchSomeone.getForm().getValues();
					    ds_absence.load({ params : { start :0, limit : 20 }	 });
					} else {
						Ext.Msg.show({
									title : '错误提示',
									msg : action.result.errorMessage,
									buttons : Ext.Msg.OK,
									icon : Ext.Msg.ERROR,
									width : 200
								});
					}
				},
				failure : function(form, action) {
					if (action.result.success==false){
						Ext.Msg.show({
							title : '操作提示',
							msg : action.result.errorMessage,
							buttons : Ext.Msg.OK,
							icon : Ext.Msg.ERROR,
							width : 200,
							fn:function(){
								window_absence_searchSomeone.show();
							}
						});
					}else if (action.failureType == 'server') {
						Ext.MessageBox.alert('错误', '操作失败 ');
					} else if (action.failureType == 'connect') {
						Ext.Msg.alert('连接错误', '指定路径连接错误!');
					} else if (action.failureType == 'client') {
						Ext.Msg.alert('提示', '数据错误，非法提交');
					} else {
						Ext.MessageBox.alert('警告', '服务器数据传输错误');
					}
				}
					 
				});
			window_absence_searchSomeone.hide();
		}
			// }
		}, {
		text : '重置',
		handler : function() {
			form_absence_searchSomeone.getForm().reset();
		}
	}, {
		text : '取消',
		type : 'button',
		handler : function() {
			window_absence_searchSomeone.hide();
		}

	}]
});
var window_absence_searchSomeone = new Ext.Window({
	title : '按用户查询',
	width : 600,
	resizable : false,
	autoHeight : true,
	constrain: true,
	modal : true,
	iconCls:'absence_search',
	closable:false,
	closeAction : 'hide',
	items : form_absence_searchSomeone

});

/* ==================查询某人的缺勤记录 end ======================== */
/* ================修改缺勤记录 begin ======================== */
/** **********************修改缺勤信息窗口********************************* */
window.modifyAbsenceWindow = function(id, name,half) {
	Ext.Ajax.request({
		url : 'absence_viewTheAbsence_view.action',
		method : 'post',
		params : {
			absencerId : id,
			dateHalf : half
		},
		success : function(resp, opts) {
			var respText = Ext.util.JSON.decode(resp.responseText);
			var confirmStatue;
			if(respText.anAbsence.confirmedStatus==0){
		    	confirmStatue='未确认';
		    }else if(respText.anAbsence.confirmedStatus==1){
		    	confirmStatue='缺勤';
		    }else {
		    	confirmStatue='出勤';
		    }
			if (respText.success) {
				var window_absence_modify = new Ext.Window({
					title : '修改缺勤信息',
					width : 600,
					resizable : false,
					autoHeight : true,
					constrain: true,
					closable:false,
					iconCls:"absence",
					modal : true,
					closeAction : 'hide',
					items : [
					/** **********************修改缺勤信息表单********************************* */
					form_absence_modify = new Ext.FormPanel({
						border : false,
						baseCls : 'x-plain',
						bodyStyle : 'padding:5px 5px 0',
						labelAlign : 'right',
						autoWidth:true,
						labelWidth : 100,
						defaults : {
							itemCls:'form_text'
						// msgTarget : 'side'
						},
						defaultType : 'textfield',
						mode : 'remote',
						triggerAction : 'all',
						items : [ {
									fieldLabel : '用户名  ',
									name : 'user.userName',
									readOnly:true,
									itemCls : 'unedit form_text clear',
									value : name,
									maxLength : 30
								}, {
									fieldLabel : '缺勤时间  ',
									name : 'anAbsence.dateHalf',
									readOnly : true,
									itemCls : 'form_text unedit',
									value : respText.anAbsence.dateHalf,
									maxLength : 30
								},{
									name : 'confirmStatue',
									readOnly:true,
									itemCls : 'form_text unedit',
								// hiddenName : 'anAbsence.confirmedStatus', //
								// 用此属性，数据传不到action
									fieldLabel : '确认状态  ',
									value : confirmStatue,
									maxLength : 30
								}, {
									xtype : 'combo',
									name : 'absenceType',
									editable : false,
									store : new Ext.data.SimpleStore({
												data : [['1', '出差'],
														['2', '请假']],
												fields : ['value', 'text']
											}),
									fieldLabel : '缺勤类型  ',
									value : respText.anAbsence.type,
									mode : 'local',
									triggerAction : 'all',
									valueField : 'value',
									displayField : 'text',
									maxLength : 30
								}, {
									xtype : 'combo',
									name : 'absentStatues',
									editable : false,
									store : new Ext.data.SimpleStore({
												data : [['1', '缺勤'],
														['2', '出勤']],
												fields : ['value', 'text']
											}),
									fieldLabel : '出勤状态  ',
									value : respText.anAbsence.status,
									mode : 'local',
									triggerAction : 'all',
									valueField : 'value',
									displayField : 'text',
									maxLength : 30
								},  {
									xtype : 'textarea',
									fieldLabel : '备注  ',// 实现时注意原记录不可以修改，只可以增加新的备注信息
									name : 'remark',
									height : 80,
									width:442,
									itemCls:'form_long',
									maxLength : 200
								}, {
									xtype : 'textfield',
									name : 'anAbsence.userId',
									value : respText.anAbsence.userId,
									hidden : true,
									maxLength : 30
								}],
						buttons : [{
							text : '保存',
							type : 'submit',
							handler : function() {
								if (!form_absence_modify.getForm().isValid())
									return;
								form_absence_modify.getForm().submit({
									url : 'absence_modifyAbsence_edit.action',// 文件路径
									method : 'post',// 提交方法post或get
									params : '',
									success : function(form, action) {
										if (action.result.success) {
											Ext.Msg.show({
												title : '修改成功',
												msg : action.result.errorMessage,
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.INFO,
												width : 200
											});
												ds_absence.load({
															params : {
																start : 0,
																limit : 20
															}
														});
										} else {
											Ext.Msg.show({
												title : '错误提示',
												msg : action.result.errorMessage,
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
										}
									},
									failure : function(form, action) {
										if (action.result.success==false){
											Ext.Msg.show({
												title : '操作提示',
												msg : action.result.errorMessage,
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
										}else{
										if (action.failureType == 'server') {
											Ext.MessageBox.alert('错误', '操作失败 ');
										} else if (action.failureType == 'connect') {
											Ext.Msg.alert('连接错误', '指定路径连接错误!');
										} else if (action.failureType == 'client') {
											Ext.Msg.alert('提示', '数据错误，非法提交');
										} else {
											Ext.MessageBox.alert('警告',
													'服务器数据传输错误');
										}
										}
									}
								});
								window_absence_modify.hide();
							}
						}, {
							text : '重置',
							handler : function() {
								form_absence_modify.getForm().reset();
							}
						}, {
							text : '取消',
							type : 'button',
							handler : function() {
								window_absence_modify.hide();
							}
						}]
					})
					/** **********************修改缺勤信息表单********************************* */
					]
				});
				window_absence_modify.show();
			} else {
				Ext.Msg.alert('查看详情编辑失败');
			}
		},
		failure : function() {
			Ext.Msg.show({
						title : '错误提示',
						msg : '请求修改失败!',
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.ERROR,
						width : 200
					});
		}
	});
};
/* ================修改缺勤记录 end ======================== */
ds_absence.load({
			params : {
				start : 0,
				limit : 20
			}
		});
var view_absence = {
	id : 'attendanceadmin-view',
	border : false,
	layout : 'border',
	items : [grid_absence]
}
Ext.getCmp('content-panel').add(view_absence);
Ext.getCmp('content-panel').layout.setActiveItem('attendanceadmin-view');